/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.saber.certificacao.beansjsf.tutoriais;

import br.com.saber.certificacao.beansjsf.semescopo.FluxoExibicaoMaster;
import br.com.saber.certificacao.utils.UtilMetodos;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;

/**
 *
 * @author gbvbahia
 */
@ManagedBean(name = "fluxoExibicaoTutorial")
@ViewScoped
public class FluxoExibicao extends FluxoExibicaoMaster {

    private boolean exibirCadastroTutorial;
    private boolean exibirPesquisaTutorial;

    private enum PaginaFluxo {

        CADASTRO_TUTORIAL,
        PESQUISA_TUTORIAL;
    }

    /** Creates a new instance of FluxoExibicao */
    public FluxoExibicao() {
    }

    //====================
    // Iniciadores
    //====================
    @Override
    @PostConstruct
    public void init() {
        metodoExibirPesquisaTutorial();
        Logger.getLogger(FluxoExibicao.class.getName()).log(Level.FINEST, "FluxoExibicao Prova:(init()) chamado...");
    }

    @Override
    @PreDestroy
    public void end() {
        Logger.getLogger(FluxoExibicao.class.getName()).log(Level.FINEST, "FluxoExibicao Prova: (end()) chamado...");
    }

    public void metodoExibirCadastroTutorial() {
        alterarTela(PaginaFluxo.CADASTRO_TUTORIAL);
    }

    public void metodoExibirPesquisaTutorial() {
        alterarTela(PaginaFluxo.PESQUISA_TUTORIAL);
    }

    private void alterarTela(PaginaFluxo paginaLogin) {
        exibirCadastroTutorial = (PaginaFluxo.CADASTRO_TUTORIAL.equals(paginaLogin));
        exibirPesquisaTutorial = (PaginaFluxo.PESQUISA_TUTORIAL.equals(paginaLogin));
        definirAtributos(paginaLogin);
    }

    private void definirAtributos(PaginaFluxo paginaLogin) {
        FacesContext fc = FacesContext.getCurrentInstance();
        switch (paginaLogin) {
            case CADASTRO_TUTORIAL:
                this.tituloRichPanel = UtilMetodos.getResourceBundle("richpanelCadastrarTutorial", fc);
                this.imgURLNormal = "tut_42_cad.png";
                break;
            case PESQUISA_TUTORIAL:
                this.tituloRichPanel = UtilMetodos.getResourceBundle("richpanelPesquisarTutorial", fc);
                this.imgURLNormal = "tut_42_pes.png";
                break;
            default:
                throw new AssertionError("Não foi definido case para a enum: " + paginaLogin.toString());
        }
    }

    //=========================
    //Getters AND Setters
    //=========================
    public boolean isExibirCadastroTutorial() {
        return exibirCadastroTutorial;
    }

    public void setExibirCadastroTutorial(boolean exibirCadastroTutorial) {
        this.exibirCadastroTutorial = exibirCadastroTutorial;
    }

    public boolean isExibirPesquisaTutorial() {
        return exibirPesquisaTutorial;
    }

    public void setExibirPesquisaTutorial(boolean exibirPesquisaTutorial) {
        this.exibirPesquisaTutorial = exibirPesquisaTutorial;
    }
}
